home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / ssyr2.z / ssyr2
Encoding:
Text File  |  2002-10-03  |  11.3 KB  |  265 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSYYYYRRRR2222((((3333SSSS))))                                                            SSSSSSSSYYYYRRRR2222((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSSSSSSSYYYYRRRR2222, DDDDSSSSYYYYRRRR2222 - Performs symmetric rank 2 update of a real symmetric
  10.      matrix
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      Single precision
  14.  
  15.           Fortran:
  16.                CCCCAAAALLLLLLLL SSSSSSSSYYYYRRRR2222 ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _a,,,, _l_d_a))))
  17.  
  18.           C/C++:
  19.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  20.                vvvvooooiiiidddd ssssssssyyyyrrrr2222 ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,,
  21.                ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt *_a,,,, iiiinnnntttt _l_d_a))));;;;
  22.  
  23.      Double precision
  24.  
  25.           Fortran:
  26.                CCCCAAAALLLLLLLL DDDDSSSSYYYYRRRR2222 ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _a,,,, _l_d_a))))
  27.  
  28.           C/C++:
  29.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  30.                vvvvooooiiiidddd ddddssssyyyyrrrr2222 ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee _a_l_p_h_a,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt
  31.                _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee *_a,,,, iiiinnnntttt _l_d_a))));;;;
  32.  
  33. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  34.      These routines are part of the SCSL Scientific Library and can be loaded
  35.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  36.      directs the linker to use the multi-processor version of the library.
  37.  
  38.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  39.      4 bytes (32 bits). Another version of SCSL is available in which integers
  40.      are 8 bytes (64 bits).  This version allows the user access to larger
  41.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  42.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  43.      only one of the two versions; 4-byte integer and 8-byte integer library
  44.      calls cannot be mixed.
  45.  
  46.      The C and C++ prototypes shown above are appropriate for the 4-byte
  47.      integer version of SCSL. When using the 8-byte integer version, the
  48.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  49.      file should be included.
  50.  
  51. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  52.      These routines perform the following symmetric rank 2 operation:
  53.  
  54.           _A <- _a_l_p_h_a _x_y_T + _a_l_p_h_a _y_x_T + _A
  55.  
  56.      where _a_l_p_h_a is a real scalar, _y_T is the transpose of _y, _x_T is the
  57.      transpose of _x, _x and _y are _n-element vectors, and _A is an _n-by-_n real
  58.      symmetric matrix.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSYYYYRRRR2222((((3333SSSS))))                                                            SSSSSSSSYYYYRRRR2222((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      See the NOTES section of this man page for information about the
  75.      interpretation of the data types described in the following arguments.
  76.  
  77.      This routine has the following arguments:
  78.  
  79.      _u_p_l_o      Character.  (input)
  80.                Specifies whether the upper or lower triangular part of matrix
  81.                _A is being supplied, as follows:
  82.  
  83.                _u_p_l_o= 'U' or 'u':  only the upper triangular part of array _a is
  84.                referenced.
  85.                _u_p_l_o= 'L' or 'l':  only the lower triangular part of array _a is
  86.                referenced.
  87.  
  88.      _n         Integer.  (input)
  89.                Specifies the order of matrix _A.  _n >= 0.
  90.  
  91.      _a_l_p_h_a     Scalar alpha.  (input)
  92.                SSSSSSSSYYYYRRRR2222: Single precision.
  93.                DDDDSSSSYYYYRRRR2222: Double precision.
  94.  
  95.      _x         Array of dimension 1+(_n-1) * |_i_n_c_x|.  (input)
  96.                SSSSSSSSYYYYRRRR2222: Single precision array.
  97.                DDDDSSSSYYYYRRRR2222: Double precision array.
  98.  
  99.      _i_n_c_x      Integer.  (input)
  100.                On entry, _i_n_c_x specifies the increment for the elements of _x.
  101.                _i_n_c_x must not be 0.
  102.  
  103.      _y         Array of dimension 1+(_n-1) * |_i_n_c_y|.  (input)
  104.                SSSSSSSSYYYYRRRR2222: Single precision array.
  105.                DDDDSSSSYYYYRRRR2222: Double precision array.
  106.  
  107.      _i_n_c_y      Integer.  (input)
  108.                On entry, _i_n_c_y specifies the increment for the elements of _y.
  109.                _i_n_c_y must not be 0.
  110.  
  111.      _a         Array of dimension (_l_d_a,_n).  (input and output)
  112.                SSSSSSSSYYYYRRRR2222: Real array.
  113.                DDDDSSSSYYYYRRRR2222: Double precision array.
  114.  
  115.                Before entry with  _u_p_l_o='U' or 'u', the leading _n-by-_n upper
  116.                triangular part of array _a must contain the upper triangular
  117.                part of the symmetric matrix and the strictly lower triangular
  118.                part of _a is not referenced.  On exit, the upper triangular
  119.                part of the updated matrix overwrites the upper triangular part
  120.                of array _a.
  121.  
  122.                Before entry with _u_p_l_o='L' or 'l', the leading _n-by-_n lower
  123.                triangular part of array _a must contain the lower triangular
  124.                part of the symmetric matrix and the strictly upper triangular
  125.                part of _a is not referenced.  On exit, the lower triangular
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSSSSSYYYYRRRR2222((((3333SSSS))))                                                            SSSSSSSSYYYYRRRR2222((((3333SSSS))))
  137.  
  138.  
  139.  
  140.                part of the updated matrix overwrites the lower triangular part
  141.                of array _a.
  142.  
  143.      _l_d_a       Integer.  (input)
  144.                Specifies the first dimension of _a as declared in the calling
  145.                program.  _l_d_a >= MMMMAAAAXXXX(1,_n).
  146.  
  147. NNNNOOOOTTTTEEEESSSS
  148.      SSSSSSSSYYYYRRRR2222/DDDDSSSSYYYYRRRR2222 is a Level 2 Basic Linear Algebra Subprogram (Level 2 BLAS).
  149.  
  150.      When working backward (_i_n_c_x < 0 or _i_n_c_y < 0), this routine starts at the
  151.      end of the vector and moves backward, as follows:
  152.  
  153.           _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)) , ..., _x(1)
  154.  
  155.           _y(1-_i_n_c_y * (_n-1)), _y(1-_i_n_c_y * (_n-2)) , ..., _y(1)
  156.  
  157.  
  158.    DDDDaaaattttaaaa TTTTyyyyppppeeeessss
  159.      The following data types are described in this documentation:
  160.  
  161.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                     DDDDaaaattttaaaa ttttyyyyppppeeee
  162.  
  163.      Fortran:
  164.  
  165.           Array dimensioned _n           xxxx((((nnnn))))
  166.  
  167.           Array of dimensions (_m,_n)     xxxx((((mmmm,,,,nnnn))))
  168.  
  169.           Character                     CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR
  170.  
  171.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  172.  
  173.           Single precision              RRRREEEEAAAALLLL
  174.  
  175.           Double precision              DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN
  176.  
  177.      C/C++:
  178.  
  179.           Array dimensioned _n           xxxx[[[[_n]]]]
  180.  
  181.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  182.  
  183.           Character                     cccchhhhaaaarrrr
  184.  
  185.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  186.  
  187.           Single precision              ffffllllooooaaaatttt
  188.  
  189.           Double precision              ddddoooouuuubbbblllleeee
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSSSSSYYYYRRRR2222((((3333SSSS))))                                                            SSSSSSSSYYYYRRRR2222((((3333SSSS))))
  203.  
  204.  
  205.  
  206.      Note that you can explicitly declare multidimensional C/C++ arrays
  207.      provided that the array dimensions are swapped with respect to the
  208.      Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran).
  209.      To avoid a compiler type mismatch error in C++ (or a compiler warning
  210.      message in C), however, the array should be cast to a pointer of the
  211.      appropriate type when passed as an argument to a SCSL routine.
  212.  
  213. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  214.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222(3S), CCCCHHHHEEEERRRR2222(3S)
  215.  
  216.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  217.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  218.      Linear Algebra Subprograms Technical Forum.
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                                                         PPPPaaaaggggeeee 4444
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.